package demo1;

//抽象类
//abstract 抽象的
//如果一个类中有抽象方法，那么这个类一定要是抽象类
public abstract class Shape {

    //抽象方法，这个方法可以没有具体实现
    public abstract void draw();

    public static void main(String[] args) {
        //抽象类不能进行实例化
//        Shape shape=new Shape();
    }
//    抽象类和普通类的区别就在于，抽象类中可以包含抽象方法
}

//抽象类Shape必须被继承，并且继承后子类要重写父类中的抽象方法，否则子类也是抽象类，必须要使用abstract修饰
 abstract class A extends  Shape{
    abstract void test();
}

//如果不加abstract，则所有的抽象方法都得重写
class B extends A{
    @Override
    void test() {

    }

    @Override
    public void draw() {

    }
}
